diff --git a/board/esd/plu405/Makefile b/board/esd/plu405/Makefile
index f5bda55..9340a32 100644
--- a/board/esd/plu405/Makefile
+++ b/board/esd/plu405/Makefile
@@ -25,7 +25,7 @@
 
 LIB	= lib$(BOARD).a
 
-OBJS	= $(BOARD).o flash.o
+OBJS	= $(BOARD).o flash.o ../common/misc.o ../common/auto_update.o
 
 $(LIB):	$(OBJS) $(SOBJS)
 	$(AR) crv $@ $(OBJS)
diff --git a/board/esd/plu405/plu405.c b/board/esd/plu405/plu405.c
index 04f386f..e3eff31 100644
--- a/board/esd/plu405/plu405.c
+++ b/board/esd/plu405/plu405.c
@@ -26,13 +26,13 @@
 #include <command.h>
 #include <malloc.h>
 
-/* ------------------------------------------------------------------------- */
 
 #if 0
 #define FPGA_DEBUG
 #endif
 
 extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+extern void lxt971_no_sleep(void);
 
 /* fpga configuration data - gzip compressed and generated by bin2c */
 const unsigned char fpgadata[] =
@@ -46,6 +46,23 @@
 #include "../common/fpga.c"
 
 
+/*
+ * include common auto-update code (for esd boards)
+ */
+#include "../common/auto_update.h"
+
+au_image_t au_image[] = {
+	{"plu405/preinst.img", 0, -1, AU_SCRIPT},
+	{"plu405/u-boot.img", 0xfffc0000, 0x00040000, AU_FIRMWARE},
+	{"plu405/pImage_$(bd_type)", 0x00000000, 0x00100000, AU_NAND},
+	{"plu405/pImage.initrd", 0x00100000, 0x00200000, AU_NAND},
+	{"plu405/yaffsmt2.img", 0x00300000, 0x01c00000, AU_NAND},
+	{"plu405/postinst.img", 0, 0, AU_SCRIPT},
+};
+
+int N_AU_IMAGES = (sizeof(au_image) / sizeof(au_image[0]));
+
+
 /* Prototypes */
 int gunzip(void *, int, unsigned char *, unsigned long *);
 
@@ -81,8 +98,6 @@
 }
 
 
-/* ------------------------------------------------------------------------- */
-
 int misc_init_f (void)
 {
 	return 0;  /* dummy implementation */
@@ -99,7 +114,6 @@
 	int index;
 	int i;
 
-#if 1 /* test-only */
 	dst = malloc(CFG_FPGA_MAX_SIZE);
 	if (gunzip (dst, CFG_FPGA_MAX_SIZE, (uchar *)fpgadata, &len) != 0) {
 		printf ("GUNZIP ERROR - must RESET board to recover\n");
@@ -179,7 +193,6 @@
 	 */
 	*duart0_mcr = 0x08;
 	*duart1_mcr = 0x08;
-#endif
 
 	return (0);
 }
@@ -188,7 +201,6 @@
 /*
  * Check Board Identity:
  */
-
 int checkboard (void)
 {
 	unsigned char str[64];
@@ -204,10 +216,14 @@
 
 	putc ('\n');
 
+	/*
+	 * Disable sleep mode in LXT971
+	 */
+	lxt971_no_sleep();
+
 	return 0;
 }
 
-/* ------------------------------------------------------------------------- */
 
 long int initdram (int board_type)
 {
@@ -224,7 +240,6 @@
 	return (4*1024*1024 << ((val & 0x000e0000) >> 17));
 }
 
-/* ------------------------------------------------------------------------- */
 
 int testdram (void)
 {
@@ -234,7 +249,6 @@
 	return (0);
 }
 
-/* ------------------------------------------------------------------------- */
 
 #ifdef CONFIG_IDE_RESET
 void ide_set_reset(int on)
@@ -266,3 +280,15 @@
 	}
 }
 #endif
+
+
+#ifdef CONFIG_AUTO_UPDATE_SHOW
+void board_auto_update_show(int au_active)
+{
+	if (au_active) {
+		printf("\n Dies ist die board-funktion: Updating!!!\n");
+	} else {
+		printf("\n Dies ist die board-funktion: Updating done!!!\n");
+	}
+}
+#endif
